home *** CD-ROM | disk | FTP | other *** search
/ World of Amiga / World of Amiga.iso / archive / assembly / awesome.lha / demo.s < prev    next >
Text File  |  1993-01-16  |  18KB  |  654 lines

  1.         incdir    "DevpacAm:include/"
  2.         include    "exec/exec_lib.i"
  3.         include    "exec/execbase.i"
  4.         include    "graphics/gfxbase.i"
  5.         include    "graphics/graphics_lib.i"
  6.         include    "hardware/custom.i"
  7.  
  8. ***********************************************************
  9. * Other Macros
  10. ***********************************************************
  11.  
  12. CALL        MACRO
  13.         jsr    _LVO\1(a6)
  14.         ENDM
  15.  
  16. WaitBlit    MACRO
  17.         tst.b    (a5)
  18. .\@:        btst.b    #6,(a5)
  19.         bne.b    .\@
  20.         ENDM
  21.  
  22. ***********************************************************
  23.  
  24. Start:        bsr.w    TakeSystem
  25.  
  26.         bsr.w    InstallBmap
  27.         bsr.w    InstallSprites
  28.         bsr.w    InstallCopper
  29.  
  30.         move.w    #$7fff,intena-2(a5)
  31.         movea.l    VectorBase,a0
  32.         move.l    $6c(a0),Level3Save
  33.         move.l    #MyLevel3,$6c(a0)
  34.         move.w    #$c020,intena-2(a5)
  35.  
  36. .1:        btst    #6,$bfe001
  37.         bne.b    .1
  38.  
  39.         move.w    #$7fff,intena-2(a5)
  40.         movea.l    VectorBase,a0
  41.         move.l    Level3Save,$6c(a0)
  42.  
  43.         bsr.w    RestoreSystem
  44.         rts
  45.     
  46. ***********************************************************
  47.  
  48. MyLevel3:    movem.l    d0-a6,-(a7)    ; Push all regs onto stack
  49.         movea.l    #$dff002,a5    ; Custom chip base
  50.         bsr.w    VScroll
  51.         bsr.w    MoveStars
  52.         move.w    #$20,intreq-2(a5) ; Turn off VBLANK int request bit
  53.         movem.l    (a7)+,d0-a6    ; Pop all regs from stack
  54.         rte            ; End of interrupt
  55.  
  56. ***********************************************************
  57.  
  58. VScroll:    subq.w    #1,VScrollCount        ; 1 less line to move up
  59.         tst.w    VScrollCount        ; Are we ready to draw a new text line?
  60.         beq.w    NewLine            ; Yes, go do it
  61.                         ; If not, we need to shift it up
  62. WB:        WaitBlit
  63.         move.l    #Bmap+24+40,$50-2(a5)    ; Blitter source A       (y = 1)
  64.         move.l    #Bmap+24,$54-2(a5)    ; Blitter destination D  (y = 0)
  65.         move.l    #$00180018,$64-2(a5)    ; A & D modulos
  66.         move.l    #-1,$44-2(a5)        ; Write mask
  67.         move.l    #$09f00000,$40-2(a5)    ; Blitter Control registers
  68.         move.w    #(198*64)+8,$58-2(a5)    ; 198 lines by 8 words
  69.         rts
  70.  
  71. ***********************************************************
  72.  
  73. NewLine:    move.w    #11,VScrollCount    ; Reset VScroll counter
  74.     
  75.         lea    ScrollText,a2        ; Adr of scrolltext
  76.         add.l    ScrollPos,a2        ; Get to correct place in text
  77.         add.l    #15,ScrollPos        ; Next time, we want the next line
  78.         tst.b    (a2)            ; Does this line start with a 0 byte?
  79.         bne.b    NoResetText        ; No, go on as normal
  80.         move.l    #15,ScrollPos        ; Yes, restart text
  81.         lea    ScrollText,a2        ; Point back to start
  82.  
  83. NoResetText:    moveq    #0,d6            ; Counter, will do 15 characters
  84. FindChar:    lea    Font,a0            ; Adr of font
  85.         lea    Bmap,a1            ; Adr of bitmap
  86.  
  87.         moveq    #0,d0            ; Clear out d0
  88.         move.b    (a2)+,d0        ; Next char into d0
  89.         sub.b    #32,d0            ; Get range of 0-58
  90.         cmp.b    #37,d0            ; Is it lower than an 'H'?
  91.         blt.s    FirstRow        ; Yes, use the top row of the font
  92.         add.l    #(40*9),a0        ; No, use the second row of the font
  93.         sub.b    #37,d0            ;   and adjust the range
  94. FirstRow:    add.l    d0,a0            ; Add char offset into font bmap
  95.         add.l    d6,a1            ; Add char num offset into bmap
  96.         add.l    #7544,a1        ; Move to lower right of bmap
  97.         moveq    #7,d7            ; We will copy this many raster lines
  98. DrawLoop:    move.b    (a0),(a1)        ; Copy a line of the character
  99.         add.l    #40,a0            ; Next line in font bmap
  100.         add.l    #40,a1            ; Next line in target bmap
  101.         dbra    d7,DrawLoop        ; Repeat until whole character is done
  102.  
  103.         addq.l    #1,d6            ; Next character
  104.         cmpi.l    #15,d6            ; Done all 15 in this line yet?
  105.         bne.w    FindChar        ; No, do it all again
  106.         bra.w    WB
  107.         rts                ; Done
  108.  
  109. ***********************************************************
  110.  
  111. MoveStars:    lea    Stars+1,a0
  112.             moveq    #32,d0            ; num of stars div 3
  113. loop:        subq.b  #3,(a0)+
  114.         addq.l  #7,a0
  115.         subq.b  #2,(a0)+
  116.         addq.l  #7,a0
  117.         subq.b  #1,(a0)+
  118.         addq.l  #7,a0
  119.         subq.l  #1,d0
  120.         bne.s   loop
  121.         rts
  122.  
  123. ***********************************************************
  124.  
  125. InstallSprites:    lea    SpritePtrs,a0
  126.         move.l    #Stars,d0
  127.         move.w  d0,6(a0)
  128.             swap    d0
  129.         move.w  d0,2(a0)
  130.         move.l  #NullSprite,d0
  131.         move.w  d0,14(a0)
  132.         move.w  d0,22(a0)
  133.         move.w  d0,30(a0)
  134.         move.w  d0,38(a0)
  135.         move.w  d0,46(a0)
  136.         move.w  d0,54(a0)
  137.         move.w  d0,62(a0)
  138.         swap    d0
  139.         move.w  d0,10(a0)
  140.         move.w  d0,18(a0)
  141.         move.w  d0,26(a0)
  142.         move.w  d0,34(a0)
  143.         move.w  d0,42(a0)
  144.         move.w  d0,50(a0)
  145.         move.w  d0,58(a0)
  146.         rts
  147.  
  148. ***********************************************************
  149.  
  150. TakeSystem:    movea.l    4.w,a6        ; exec base
  151.         lea    $dff002,a5    ; custom chip base + 2
  152.  
  153.         lea    GraphicsName,a1    ; "graphics.library"
  154.         moveq    #0,d0        ; any version
  155.         CALL    OpenLibrary    ; open it.
  156.         move.l    d0,gfx_base    ; save pointer to gfx base
  157.         move.l    d0,a6        ; for later callls...
  158.  
  159.         move.l  gb_ActiView(a6),OldView    ; save old view
  160.  
  161.         move.w    #0,a1        ; clears full long-word
  162.         CALL    LoadView    ; Open a NULL view (resets display
  163.                     ;   on any Amiga)
  164.  
  165.         CALL    WaitTOF        ; Wait twice so that an interlace
  166.         CALL    WaitTOF        ;   display can reset.
  167.  
  168.         CALL    OwnBlitter    ; take over the blitter and...
  169.         CALL    WaitBlit    ;   wait for it to finish so we
  170.                     ;   safely use it as we please.
  171.  
  172.         movea.l    4.w,a6        ; exec base
  173.         CALL    Forbid        ; kill multitasking
  174.  
  175.         move.w    $7c-2(a5),d0    ; AGA register...
  176.         cmpi.b    #$f8,d0        ; are we AGA?
  177.         bne.b    .not_aga    ; nope.
  178.         move.w    #0,$dff1fc    ; reset AGA sprites to normal mode
  179.  
  180. .not_aga:    bsr.b    GetVBR        ; get the vector base pointer
  181.         move.l    d0,VectorBase    ; save it for later.
  182.  
  183.         move.w    dmaconr-2(a5),d0    ; old DMACON bits
  184.         ori.w    #$8000,d0    ; or it set bit for restore
  185.         move.w    d0,OldDMACon    ; save it
  186.  
  187.         move.w    intenar-2(a5),d0    ; old DMACON bits
  188.         ori.w    #$c000,d0    ; or it set bit for restore
  189.         move.w    d0,OldINTEna    ; save it
  190.         rts
  191.  
  192. ***********************************************************
  193.  
  194. RestoreSystem:    lea    $dff002,a5    ; custom chip base + 2
  195.         move.w    OldDMACon,dmacon-2(a5)    ; restore old dma bits
  196.         move.w    OldINTEna,intena-2(a5)    ; restore old int bits
  197.  
  198.         movea.l    OldView,a1    ; old Work Bench view
  199.         movea.l    gfx_base,a6    ; gfx base
  200.         CALL    LoadView    ; Restore the view
  201.         CALL    DisownBlitter    ; give blitter back to the system.
  202.  
  203.         move.l    gb_copinit(a6),$80-2(a5) ; restore system clist
  204.         movea.l    a6,a1
  205.         movea.l    4.w,a6        ; exec base
  206.         CALL    CloseLibrary
  207.         CALL    Permit         ; restart multitasking
  208.         rts
  209.  
  210. ***********************************************************
  211. * This function provides a method of obtaining a pointer to the base of the
  212. * interrupt vector table on all Amigas.  After getting this pointer, use
  213. * the vector address as an offset.  For example, to install a level three
  214. * interrupt you would do the following:
  215. *
  216. *        bsr    _GetVBR
  217. *        move.l    d0,a0
  218. *        move.l    $6c(a0),OldIntSave
  219. *        move.l    #MyIntCode,$6c(a0)
  220. *
  221. ***********************************************************
  222. * Inputs: none
  223. * Output: d0 contains vbr.
  224.  
  225. GetVBR:        move.l    a5,-(sp)        ; save it.
  226.         moveq    #0,d0            ; clear
  227.         movea.l    4.w,a6            ; exec base
  228.         btst.b    #AFB_68010,AttnFlags+1(a6); are we at least a 68010?
  229.         beq.b    .1            ; nope.
  230.         lea.l    vbr_exception(pc),a5    ; addr of function to get VBR
  231.         CALL    Supervisor        ; supervisor state
  232. .1:        move.l    (sp)+,a5        ; restore it.
  233.         rts                ; return
  234.  
  235. vbr_exception:
  236.     ; movec vbr,Xn is a priv. instr.  You must be supervisor to execute!
  237. ;        movec   vbr,d0
  238.     ; many assemblers don't know the VBR, if yours doesn't, then use this
  239.     ; line instead.
  240.         dc.w    $4e7a,$0801
  241.         rte                ; back to user state code
  242.  
  243. ***********************************************************
  244.  
  245. InstallCopper:    move.l    #Copper,$80-2(a5)    ; Install my copperlist
  246.         rts                ; Done
  247.     
  248. ***********************************************************
  249.  
  250. InstallBmap:    lea    BmapPtrs,a0        ; Bmap ptrs in copperlist
  251.         move.l    #Bmap,d0        ; Address of bitplane 1
  252.         move.w    d0,6(a0)        ; write lower half
  253.         swap    d0            ; switch words
  254.         move.w    d0,2(a0)        ; write upper half
  255.         move.l    #Bmap+8000,d0        ; Address of bitplane 2
  256.         move.w    d0,14(a0)        ; write lower half
  257.         swap    d0            ; switch words
  258.         move.w    d0,10(a0)        ; write upper half
  259.         move.l    #Bmap+16000,d0        ; Address of bitplane 3
  260.         move.w    d0,22(a0)        ; write lower half
  261.         swap    d0            ; switch words
  262.         move.w    d0,18(a0)        ; write upper half
  263.         move.l    #Bmap+24000,d0        ; Address of bitplane 4
  264.         move.w    d0,30(a0)        ; write lower half
  265.         swap    d0            ; switch words
  266.         move.w    d0,26(a0)        ; write upper half
  267.         rts                ; Done
  268.  
  269. ***********************************************************
  270.  
  271.         section    DemoText,DATA
  272.  
  273. GraphicsName:    GRAFNAME        ; name of gfx library
  274.         EVEN
  275.  
  276. ScrollText:    dc.b    '               '
  277.         dc.b    '               '
  278.         dc.b    '               '
  279.         dc.b    '               '
  280.         dc.b    '               '
  281.         dc.b    '               '
  282.         dc.b    '               '
  283.         dc.b    '               '
  284.         dc.b    '               '
  285.         dc.b    '               '
  286.         dc.b    '       A       '
  287.         dc.b    '               '
  288.         dc.b     '      LONG     '
  289.         dc.b    '               '
  290.         dc.b    '      TIME     '
  291.         dc.b    '               '
  292.         dc.b    '      AGO,     '
  293.         dc.b    '               '
  294.         dc.b    '       IN      '
  295.         dc.b    '               '
  296.         dc.b    '       A       '
  297.         dc.b    '               '
  298.         dc.b    '     GALAXY    '
  299.         dc.b    '               '
  300.         dc.b    '      FAR,     '
  301.         dc.b    '               '
  302.         dc.b    '      FAR      '
  303.         dc.b    '               '
  304.         dc.b    '      AWAY     '
  305.         dc.b    '               '
  306.         dc.b    '               '
  307.         dc.b    '               '
  308.         dc.b    '               '
  309.         dc.b    '               '
  310.         dc.b    'IS WHERE THIS  '
  311.         dc.b    'DEMO BELONGS!! '
  312.         dc.b    '               '
  313.         dc.b    '               '
  314.         dc.b    '               '
  315.         dc.b    'WELL ANYWAY,   '
  316.         dc.b    '               '
  317.         dc.b    'THIS IS VISION '
  318.         dc.b    '               '
  319.         dc.b    'OF EPSILON     '
  320.         dc.b    '               '
  321.         dc.b    'PRESENTING HIS '
  322.         dc.b    '               '
  323.         dc.b    'NEW, EXCITING  '
  324.         dc.b     '               '
  325.         dc.b    '"AWESOME" DEMO!'
  326.         dc.b    '               '
  327.         dc.b    '               '
  328.         dc.b    '               '
  329.         dc.b    'AS YOU CAN     '
  330.         dc.b    '               '
  331.          dc.b    'PROBABLY TELL, '
  332.         dc.b    '               '
  333.         dc.b    "IT'S NOT CALLED"
  334.         dc.b    '               '
  335.         dc.b    'THAT BECAUSE IT'
  336.         dc.b    '               '
  337.         dc.b    'IS ADVANCED... '
  338.         dc.b    '               '
  339.         dc.b    '               '
  340.         dc.b    '               '
  341.         dc.b    '               '
  342.         dc.b    'BUT BECAUSE THE'
  343.         dc.b    '               '
  344.         dc.b    'GRAPHICS       '
  345.         dc.b    '               '
  346.         dc.b    'WERE RIPPED    '
  347.         dc.b    '               '
  348.         dc.b    'FROM THE GAME  '
  349.         dc.b    '               '
  350.         dc.b    '"AWESOME."     '
  351.         dc.b    '               '
  352.         dc.b    '               '
  353.         dc.b    '               '
  354.         dc.b    '               '
  355.         dc.b    'PRETTY CHEAP,  '
  356.         dc.b    'HUH?           '
  357.         dc.b    '               '
  358.         dc.b    '               '
  359.         dc.b    '               '
  360.         dc.b    '               '
  361.         dc.b    '               '
  362.         dc.b    '               '
  363.         dc.b    '               '
  364.         dc.b    'TEXT RESTARTS..'
  365.         dc.b    '               '
  366.         dc.b    '               '
  367.         dc.b    '               '
  368.         dc.b    '               '
  369.         dc.b    '               '
  370.         dc.b    '               '
  371.         dc.b    '               '
  372.         dc.b    '               '
  373.         dc.b    0
  374.         EVEN
  375.  
  376. VScrollCount:    dc.w    11
  377.     
  378. ***********************************************************
  379.  
  380.         section    DemoData,DATA_c
  381.  
  382. NullSprite:    dc.l    0,0,0,0
  383.  
  384.         incdir    ''
  385. Bmap:        incbin    'df1:awesome.raw'
  386. Font:        incbin    'df1:mahoneyfont.raw'
  387.  
  388. Copper:    dc.w    $0100,$4200,$0102,$0000,$0104,$0000,$0108,$0000,$010a,$0000
  389.     dc.w    $008e,$2d81,$0090,$f4c1,$0092,$0038,$0094,$00d0,$0180,$0000
  390.     dc.w    $0182,$0eff,$0184,$0cee,$0186,$09cc,$0188,$08bb,$018a,$069a
  391.     dc.w    $018c,$0689,$018e,$0578,$0190,$0567,$0192,$0456,$0194,$0445
  392.     dc.w    $0196,$0334,$0198,$0233,$019a,$0122,$019c,$0111,$019e,$0000
  393.  
  394.     dc.w    $01a2,$0444,$01a4,$0fff,$01a6,$0888
  395. BmapPtrs:
  396.     dc.w    $00e0,$0000,$00e2,$0000,$00e4,$0000,$00e6,$0000,$00e8,$0000
  397.     dc.w    $00ea,$0000,$00ec,$0000,$00ee,$0000
  398. SpritePtrs:
  399.     dc.w    $0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000,$0128,$0000
  400.     dc.w    $012a,$0000,$012c,$0000,$012e,$0000,$0130,$0000,$0132,$0000
  401.     dc.w    $0134,$0000,$0136,$0000,$0138,$0000,$013a,$0000,$013c,$0000
  402.     dc.w    $013e,$0000
  403.  
  404.     dc.w    $2c0f,$fffe,$0182,$0000
  405.     dc.w    $2d0f,$fffe,$0182,$0011
  406.     dc.w    $2e0f,$fffe,$0182,$0122
  407.     dc.w    $2f0f,$fffe,$0182,$0233
  408.     dc.w    $300f,$fffe,$0182,$0344
  409.     dc.w    $310f,$fffe,$0182,$0455
  410.     dc.w    $320f,$fffe,$0182,$0566
  411.     dc.w    $330f,$fffe,$0182,$0677
  412.     dc.w    $340f,$fffe,$0182,$0788
  413.     dc.w    $350f,$fffe,$0182,$0899
  414.     dc.w    $360f,$fffe,$0182,$09aa
  415.     dc.w    $370f,$fffe,$0182,$0abb
  416.     dc.w    $380f,$fffe,$0182,$0bcc
  417.     dc.w    $390f,$fffe,$0182,$0cdd
  418.     dc.w    $3a0f,$fffe,$0182,$0dee
  419.     dc.w    $3b0f,$fffe,$0182,$0eff
  420.     dc.w    $d00f,$fffe,$0182,$0eff,$d08f,$fffe,$0182,$0eff
  421.     dc.w    $d10f,$fffe,$0182,$0eff,$d18f,$fffe,$0182,$0dee
  422.     dc.w    $d20f,$fffe,$0182,$0eff,$d28f,$fffe,$0182,$0cdd
  423.     dc.w    $d30f,$fffe,$0182,$0eff,$d38f,$fffe,$0182,$0bcc
  424.     dc.w    $d40f,$fffe,$0182,$0eff,$d48f,$fffe,$0182,$0abb
  425.     dc.w    $d50f,$fffe,$0182,$0eff,$d58f,$fffe,$0182,$09aa
  426.     dc.w    $d60f,$fffe,$0182,$0eff,$d68f,$fffe,$0182,$0899
  427.     dc.w    $d70f,$fffe,$0182,$0eff,$d78f,$fffe,$0182,$0788
  428.     dc.w    $d80f,$fffe,$0182,$0eff,$d88f,$fffe,$0182,$0677
  429.     dc.w    $d90f,$fffe,$0182,$0eff,$d98f,$fffe,$0182,$0566
  430.     dc.w    $da0f,$fffe,$0182,$0eff,$da8f,$fffe,$0182,$0455
  431.     dc.w    $db0f,$fffe,$0182,$0eff,$db8f,$fffe,$0182,$0344
  432.     dc.w    $dc0f,$fffe,$0182,$0eff,$dc8f,$fffe,$0182,$0233
  433.     dc.w    $dd0f,$fffe,$0182,$0eff,$dd8f,$fffe,$0182,$0122
  434.     dc.w    $de0f,$fffe,$0182,$0eff,$de8f,$fffe,$0182,$0011
  435.     dc.w    $df0f,$fffe,$0182,$0eff,$df8f,$fffe,$0182,$0000
  436.     dc.w    $e00f,$fffe,$0182,$0eff,$e08f,$fffe,$0182,$0000
  437.     dc.w    $e10f,$fffe,$0182,$0eff,$e18f,$fffe,$0182,$0000
  438.     dc.w    $e20f,$fffe,$0182,$0eff,$e28f,$fffe,$0182,$0000
  439.     dc.w    $e30f,$fffe,$0182,$0eff,$e38f,$fffe,$0182,$0000
  440.     dc.w    $e40f,$fffe,$0182,$0eff,$e48f,$fffe,$0182,$0000
  441.     dc.w    $e50f,$fffe,$0182,$0eff,$e58f,$fffe,$0182,$0000
  442.     dc.w    $e60f,$fffe,$0182,$0eff,$e68f,$fffe,$0182,$0000
  443.     dc.w    $e70f,$fffe,$0182,$0eff,$e78f,$fffe,$0182,$0000
  444.     dc.w    $e80f,$fffe,$0182,$0eff,$e88f,$fffe,$0182,$0000
  445.     dc.w    $ffff,$fffe
  446.  
  447. Stars:  dc.w    $2c40,$2d00
  448.     dc.w    $0000,$0001     ; a star on line one
  449.     dc.w    $2e50,$2f00
  450.     dc.w    $0001,$0001     ; a star on line two
  451.     dc.w    $3080,$3100
  452.     dc.w    $0001,$0000
  453.     dc.w    $3284,$3300
  454.     dc.w    $0000,$0001    
  455.     dc.w    $34a2,$3500
  456.     dc.w    $0001,$0001    
  457.     dc.w    $36d3,$3700
  458.     dc.w    $0001,$0000
  459.     dc.w    $3898,$3900
  460.     dc.w    $0000,$0001    
  461.     dc.w    $40ff,$4100
  462.     dc.w    $0001,$0001   
  463.     dc.w    $4266,$4300
  464.     dc.w    $0001,$0000
  465.     dc.w    $4443,$4500
  466.     dc.w    $0000,$0001    
  467.     dc.w    $46ef,$4700
  468.     dc.w    $0001,$0001   
  469.     dc.w    $484b,$4900
  470.     dc.w    $0001,$0000
  471.     dc.w    $4aa8,$4b00
  472.     dc.w    $0000,$0001    
  473.     dc.w    $4cd6,$4d00
  474.     dc.w    $0001,$0001   
  475.     dc.w    $4ea5,$4f00
  476.     dc.w    $0001,$0000
  477.     dc.w    $503c,$5100
  478.     dc.w    $0000,$0001    
  479.     dc.w    $5243,$5300
  480.     dc.w    $0001,$0001   
  481.     dc.w    $5400,$5500
  482.     dc.w    $0001,$0000    ; 6
  483.     dc.w    $5684,$5700
  484.     dc.w    $0000,$0001    
  485.     dc.w    $5894,$5900
  486.     dc.w    $0001,$0001   
  487.     dc.w    $5a33,$5b00
  488.     dc.w    $0001,$0000    ; 7
  489.     dc.w    $5ca3,$5d00
  490.     dc.w    $0000,$0001    
  491.     dc.w    $5e35,$5f00
  492.     dc.w    $0001,$0001   
  493.     dc.w    $6006,$6100
  494.     dc.w    $0001,$0000    ; 8
  495.     dc.w    $6254,$6300
  496.     dc.w    $0000,$0001    
  497.     dc.w    $6409,$6500
  498.     dc.w    $0001,$0001   
  499.     dc.w    $66ab,$6700
  500.     dc.w    $0001,$0000    ; 9
  501.     dc.w    $6887,$6900
  502.     dc.w    $0000,$0001    
  503.     dc.w    $6a97,$6b00
  504.     dc.w    $0001,$0001   
  505.     dc.w    $6cfa,$6d00
  506.     dc.w    $0001,$0000    ; 10
  507.     dc.w    $6e03,$6f00
  508.     dc.w    $0000,$0001    
  509.     dc.w    $7023,$7100
  510.     dc.w    $0001,$0001   
  511.     dc.w    $7257,$7300
  512.     dc.w    $0001,$0000    ; 11
  513.     dc.w    $74dc,$7500
  514.     dc.w    $0000,$0001    
  515.     dc.w    $76a7,$7700
  516.     dc.w    $0001,$0001   
  517.     dc.w    $789a,$7900
  518.     dc.w    $0001,$0000    ; 12
  519.     dc.w    $7a03,$7b00
  520.     dc.w    $0000,$0001    
  521.     dc.w    $7c06,$7d00
  522.     dc.w    $0001,$0001   
  523.     dc.w    $7eab,$7f00
  524.     dc.w    $0001,$0000    ; 13
  525.     dc.w    $80dc,$8100
  526.     dc.w    $0000,$0001    
  527.     dc.w    $82a7,$8300
  528.     dc.w    $0001,$0001   
  529.     dc.w    $84df,$8500
  530.     dc.w    $0001,$0000    ; 14
  531.     dc.w    $8623,$8700
  532.     dc.w    $0000,$0001    
  533.     dc.w    $8898,$8900
  534.     dc.w    $0001,$0001   
  535.     dc.w    $8aab,$8b00
  536.     dc.w    $0001,$0000    ; 15
  537.     dc.w    $8c87,$8d00
  538.     dc.w    $0000,$0001    
  539.     dc.w    $8edc,$8f00
  540.     dc.w    $0001,$0001   
  541.     dc.w    $9013,$9100
  542.     dc.w    $0001,$0000    ; 16
  543.     dc.w    $9200,$9300
  544.     dc.w    $0000,$0001    
  545.     dc.w    $9434,$9500
  546.     dc.w    $0001,$0001   
  547.     dc.w    $9687,$9700
  548.     dc.w    $0001,$0000    ; 17
  549.     dc.w    $9854,$9900
  550.     dc.w    $0000,$0001    
  551.     dc.w    $9ac0,$9b00
  552.     dc.w    $0001,$0001   
  553.     dc.w    $9c12,$9d00
  554.     dc.w    $0001,$0000    ; 18
  555.     dc.w    $9e8f,$9f00
  556.     dc.w    $0000,$0001    
  557.     dc.w    $a03c,$a100
  558.     dc.w    $0001,$0001   
  559.     dc.w    $a254,$a300
  560.     dc.w    $0001,$0000    ; 19
  561.     dc.w    $a434,$a500
  562.     dc.w    $0000,$0001    
  563.     dc.w    $a6bd,$a700
  564.     dc.w    $0001,$0001   
  565.     dc.w    $a8ff,$a900
  566.     dc.w    $0001,$0000    ; 20
  567.     dc.w    $aaaf,$ab00
  568.     dc.w    $0000,$0001    
  569.     dc.w    $ac3c,$ad00
  570.     dc.w    $0001,$0001   
  571.     dc.w    $ae24,$af00
  572.     dc.w    $0001,$0000    ; 21
  573.     dc.w    $b034,$b100
  574.     dc.w    $0000,$0001    
  575.     dc.w    $b27c,$b300
  576.     dc.w    $0001,$0001   
  577.     dc.w    $b4d6,$b500
  578.     dc.w    $0001,$0000    ; 22
  579.     dc.w    $b678,$b700
  580.     dc.w    $0000,$0001    
  581.     dc.w    $b803,$b900
  582.     dc.w    $0001,$0001   
  583.     dc.w    $bade,$bb00
  584.     dc.w    $0001,$0000    ; 23
  585.     dc.w    $bc22,$bd00
  586.     dc.w    $0000,$0001    
  587.     dc.w    $be34,$bf00
  588.     dc.w    $0001,$0001   
  589.     dc.w    $c02a,$c100
  590.     dc.w    $0001,$0000    ; 24
  591.     dc.w    $c24a,$c300
  592.     dc.w    $0000,$0001    
  593.     dc.w    $c466,$c500
  594.     dc.w    $0001,$0001   
  595.     dc.w    $c633,$c700
  596.     dc.w    $0001,$0000    ; 25
  597.     dc.w    $c888,$c900
  598.     dc.w    $0000,$0001    
  599.     dc.w    $ca21,$cb00
  600.     dc.w    $0001,$0001   
  601.     dc.w    $cc78,$cd00
  602.     dc.w    $0001,$0000    ; 26
  603.     dc.w    $ce12,$cf00
  604.     dc.w    $0000,$0001    
  605.     dc.w    $d045,$d100
  606.     dc.w    $0001,$0001   
  607.     dc.w    $d2da,$d300
  608.     dc.w    $0001,$0000    ; 27
  609.     dc.w    $d447,$d500
  610.     dc.w    $0000,$0001    
  611.     dc.w    $d698,$d700
  612.     dc.w    $0001,$0001   
  613.     dc.w    $d840,$d900
  614.     dc.w    $0001,$0000    ; 28
  615.     dc.w    $dad0,$db00
  616.     dc.w    $0000,$0001    
  617.     dc.w    $dcc0,$dd00
  618.     dc.w    $0001,$0001   
  619.     dc.w    $de30,$df00
  620.     dc.w    $0001,$0000    ; 29
  621.     dc.w    $e023,$e100
  622.     dc.w    $0000,$0001    
  623.     dc.w    $e220,$e300
  624.     dc.w    $0001,$0001   
  625.     dc.w    $e45d,$e500
  626.     dc.w    $0001,$0000    ; 30
  627.     dc.w    $e668,$e700
  628.     dc.w    $0000,$0001    
  629.     dc.w    $e842,$e900
  630.     dc.w    $0001,$0001   
  631.     dc.w    $eaac,$eb00
  632.            dc.w    $0001,$0000    ; 31
  633.            dc.w    $ecec,$ed00
  634.            dc.w    $0000,$0001    
  635.            dc.w    $eefa,$ef00
  636.            dc.w    $0001,$0001   
  637.            dc.w    $f078,$f100
  638.            dc.w    $0001,$0000    ; 32
  639.     dc.w    $0000,$0000
  640.     
  641. ***********************************************************
  642.  
  643.         section    DemoBSS,BSS
  644.  
  645. Level3Save:    ds.l    1
  646. gfx_base    ds.l    1        ; pointer to graphics base
  647. OldView        ds.l    1        ; old Work Bench view addr.
  648. VectorBase:    ds.l    1        ; pointer to the Vector Base
  649.  
  650. OldDMACon:    ds.w    1        ; old dmacon bits
  651. OldINTEna:    ds.w    1        ; old intena bits
  652.  
  653. ScrollPos:    ds.l    1
  654.